/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import controladores.ConvenioXPeriodoXEstudianteFacadeLocal;
import controladores.EntidadFacadeLocal;
import controladores.SitioFacadeLocal;
import entidades.ConvenioXPeriodoXEstudiante;
import entidades.Entidad;
import entidades.Estudiante;
import entidades.Periodo;
import entidades.ResumenSemPracProf;
import entidades.Sitio;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpServletRequest;
import negocio.EstudianteInterface;
import negocio.ResumenSemPracticaProfInterface;

/**
 *
 * @author BATAQUERO
 */
@ManagedBean
@ViewScoped
public class FResumenSemPracticaProf implements Formato, Serializable {
    
    private ResumenSemPracProf resumenSemPracProf = new ResumenSemPracProf();
    @EJB
    private ResumenSemPracticaProfInterface resumenSemPracticaProfInterface;
    private EstudianteInterface estudianteInterface;
    private List<Estudiante> listaEstudiantes;
    private String estudianteSelected;
    @EJB
    private ConvenioXPeriodoXEstudianteFacadeLocal convenioXPeriodoXEstudianteFacadeLocal;
    @ManagedProperty(value = "#{sessionBean}")
    private SessionBean sessionBean;
    @EJB
    private SitioFacadeLocal sitioFacadeLocal;
    @EJB
    private EntidadFacadeLocal entidadFacadeLocal;
    private int idSupervisor;
    private List<ConvenioXPeriodoXEstudiante> convenioXPeriodoXEstudiantes;
    private String ESTADO_PERIODO = "ACT";
    private Entidad entidad = new Entidad();
    private Periodo periodo = new Periodo();
    private Sitio sitio = new Sitio();
       
    public FResumenSemPracticaProf() {
    }

    @PostConstruct // Este postconstructor es necesario para los contextos y enlazar el controlador de persistencia
    public void InicializarVariables() {
        
//            
//            InitialContext ctx = new InitialContext();
//            estudianteInterface = (EstudianteInterface) ctx.lookup("EstudianteEJB");
//            listaEstudiantes = estudianteInterface.listarEstudiantes();
//            
            idSupervisor = sessionBean.getUsuarioSession().getIdUsuario();
            convenioXPeriodoXEstudiantes = convenioXPeriodoXEstudianteFacadeLocal.listarEstudiantesXSupervisor(idSupervisor, ESTADO_PERIODO);
            //entidad = convenioXPeriodoXEstudianteFacadeLocal.consultarConvenioXPeriodoXEstudiante(Integer.parseInt(estudianteSelected.toString()), ESTADO_PERIODO).getIdSitio().getIdEntidad();
            //periodo = convenioXPeriodoXEstudianteFacadeLocal.consultarConvenioXPeriodoXEstudiante(Integer.parseInt(estudianteSelected), ESTADO_PERIODO).getConvenioXPeriodo().getIdPeriodo();
            //resumenSemPracticaProfInterface = (ResumenSemPracticaProfInterface) ctx.lookup("ResumenSemPracticaProfEJB");
            //convenioInterface = (ConvenioInterface) ctx.lookup("ConvenioEJB");
            HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
            if (request.getParameter("resumenIdEstudiante") != null && request.getParameter("resumenIdSupervisor") != null && request.getParameter("resumenIdSupervisorEntidad") != null && request.getParameter("resumenIdCoordinador") != null) {
//                resumen = resumenSemPracticaProfInterface.consultarResumen(new ResumenSemPracProfPK(Integer.parseInt(request.getParameter("resumenIdEstudiante").toString()), Integer.parseInt(request.getParameter("resumenIdSupervisor").toString()), Integer.parseInt(request.getParameter("resumenIdSupervisorEntidad").toString()), Integer.parseInt(request.getParameter("resumenIdCoordinador").toString())));
//                resumen.getEstudiante().setConvenioList(new ArrayList<Convenio>());
//                resumen.getEstudiante().getConvenioList().add(convenioInterface.consultarConvenio(resumen.getEstudiante()));
//                estudiante = resumen.getEstudiante();
//                SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
//                try {
//                    horaInicio = sdf.parse(resumen.getHorarioPracticaDe());
//                    horaFin = sdf.parse(resumen.getHorarioPracticaHsata());
//                } catch (ParseException ex) {
//                    Logger.getLogger(FResumenSemPracticaProf.class.getName()).log(Level.SEVERE, null, ex);
//                }
            } //else {
            //    listaEstudiantes = estudianteInterface.listarEstudiantes();
              //  estudiante = sessionBean.getUsuarioSession().getEstudiante();
              /*  resumen = new ResumenSemPracProf(new ResumenSemPracProfPK(estudiante.getIdEstudiante(), estudiante.getIdSupervisor().getIdSupervisor(), estudiante.getConvenioList().get(0).getIdSupervisorEntidad().getIdSupervisorEntidad(), estudiante.getIdSupervisor().getIdCoodinadorPracticas().getIdCoodinadorPracticas()));
                resumen.setCoordinadorPracticas(estudiante.getIdSupervisor().getIdCoodinadorPracticas());
                resumen.setEstudiante(estudiante);
                resumen.setSupervisor(estudiante.getIdSupervisor());
                resumen.setSupervisorEntidad(estudiante.getConvenioList().get(0).getIdSupervisorEntidad());
                resumenSemPracProfs = resumenSemPracticaProfInterface.listarResumen();
                for (ResumenSemPracProf pracProf : resumenSemPracProfs) {
                    pracProf.getEstudiante().setConvenioList(new ArrayList<Convenio>());
                    pracProf.getEstudiante().getConvenioList().add(convenioInterface.consultarConvenio(pracProf.getEstudiante()));
                }*/

           // }
            //        inicializarControladores();
            //        inicializarControladores();

            // Se quema el supervisor con el objetivo que cuando se haga el login se traiga dinamicamente
            //        if (estudianteSelected == 0) {
            //            listaEstuiantes.clear();
            //            // Linea de la sesion
            //            Supervisor s = supervisorJpaController.findSupervisor(3010);
            //            listaEstuiantes = s.getEstudianteList();
            //
            //        }

    }

    public void guardar(ActionEvent event) {
        //resumen.setFecha(new Date());
        //SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
       /* resumen.setHorarioPracticaDe(sdf.format(horaInicio));
        resumen.setHorarioPracticaHsata(sdf.format(horaFin));
        resumenSemPracticaProfInterface.crear(resumen);
        FacesMessage msg = new FacesMessage("Exitoso", "El formato del estudiante '" + resumen.getEstudiante().getNombresEstudiante() + "' se guardó correctamente.");
        FacesContext.getCurrentInstance().addMessage(null, msg);*/
    }

/*    public void ejecutarDiligenciar() {
        DiligenciarFormato();
    }

    public void ejecutarConsultar() {
        ConsultarFormato();
    }

    public void ejecutarAprobar() {
        AprobarFormato();
    }

    public void ejecutarEditar() {
        EditarFormato();
    }
*/
    @Override
    public void ConsultarFormato() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.        

    }

    @Override
    public void DiligenciarFormato() {
        try{
            
            System.out.println("--------------------entra al metodo de guardar--------------------------");
            Estudiante estudiante = new Estudiante(Integer.parseInt(estudianteSelected));
            estudiante.setIdEstudiante(Integer.parseInt(estudianteSelected));
            resumenSemPracProf.setConvenioXPeriodoXEstudiante(convenioXPeriodoXEstudianteFacadeLocal.consultarConvenioXPeriodoXEstudiante(Integer.parseInt(estudianteSelected),ESTADO_PERIODO));
            resumenSemPracProf.setIdResumenSemPracProf(resumenSemPracticaProfInterface.obtenerMaxId());
            //resumenSemPracProf.
//            sitioFacadeLocal.consultarSitio(Integer.parseInt(convenioXPeriodoXEstudianteFacadeLocal.toString()));
//            entidadFacadeLocal.consultarEntidad(sitioFacadeLocal.consultarSitio(Integer.parseInt(convenioXPeriodoXEstudianteFacadeLocal.toString())));
            System.out.println("---------------antes de crear---------------------");
            resumenSemPracticaProfInterface.crear(resumenSemPracProf);
            FacesMessage facesMessage = new FacesMessage("Datos guardados con éxito");
            FacesContext.getCurrentInstance().addMessage(null, facesMessage);
            limpiarCampos();
        } catch (Exception e) {
            FacesMessage facesMessage = new FacesMessage("Error");
            FacesContext.getCurrentInstance().addMessage(null, facesMessage);
            e.printStackTrace();
            }
        
        //Prueba p = new Prueba();
//        p = pruebaJpaController.findIdPrueba(171);
//        System.out.println(p.getNombrePrueba());
//        Estudiante e = new Estudiante();
//        e = estudianteJpaController.findIdEstudiante(80739686);
//        System.out.println(e.getApellidosEstudiante() + ' ' + e.getNombresEstudiante() + ' ' + e.getCedulaEstudiante()
//                + ' ' + e.getCorreoestudiante());
//        Entidad en = new Entidad();
//        en = entidadJpaController.findEntidad(2);
//        System.out.println(en.getNombreentidad());
//        Supervisor sup = new Supervisor();
//        sup = supervisorJpaController.findSupervisor(3010);
//        System.out.println(sup.getApellido1Supervisor());
//        nombreEntidad = sup.getApellido1Supervisor();
//        ponerTexto(nombreEntidad);
        // ResumenSemPracProf resumen = new ResumenSemPracProf();
        //resumen.setIdResSemPrac(areaTrabajo);
//            Estudiante idEstud = new Estudiante();
//            Supervisor idSuperv = new Supervisor();
//            idEstud = estudianteJpaController.findEstudiante(periodoAcademico);
//            resPracProf.setIdSupervisor(idSuperv);
//            resPracProf.setIdEstudiante(idEstud.getIdEstudiante().toString());
//            resumenSemPracticaProfJpaController.create(resPracProf); //Se insertan los datos en la base de datos
    }

    @Override
    public void AprobarFormato() {
    }

    @Override
    public void EditarFormato() {
        System.out.println("--------------------- Ingresa al metodo--------------");
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    public void limpiarCampos(){ /*Este metodo limpia los campos diligenciados despues de ser guardados*/
        estudianteSelected = "";
        resumenSemPracProf = null;
    
    }
    public void addMessage(String summary) {
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, null);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

//    public int getPeriodoAcademico() {
//        return periodoAcademico;
//    }
//
//    public void setPeriodoAcademico(int periodoAcademico) {
//        this.periodoAcademico = periodoAcademico;
//    }
//
//    public Date getFecha() {
//        return fecha;
//    }
//
//    public void setFecha(Date fecha) {
//        this.fecha = fecha;
//    }
//
//    public String getNombreEntidad() {
//        return nombreEntidad;
//    }
//
//    public void setNombreEntidad(String nombreEntidad) {
//        this.nombreEntidad = nombreEntidad;
//    }
//
//    public String getNitEntidad() {
//        return nitEntidad;
//    }
//
//    public void setNitEntidad(String nitEntidad) {
//        this.nitEntidad = nitEntidad;
//    }
//
//    public String getTelefonosEntidad() {
//        return telefonosEntidad;
//    }
//
//    public void setTelefonosEntidad(String telefonosEntidad) {
//        this.telefonosEntidad = telefonosEntidad;
//    }
//
//    public String getDireccionEntidad() {
//        return direccionEntidad;
//    }
//
//    public void setDireccionEntidad(String direccionEntidad) {
//        this.direccionEntidad = direccionEntidad;
//    }
//
//    public String getNombreSupervisorEnt() {
//        return nombreSupervisorEnt;
//    }
//
//    public void setNombreSupervisorEnt(String nombreSupervisorEnt) {
//        this.nombreSupervisorEnt = nombreSupervisorEnt;
//    }
//
//    public String getCargoSupervisorEnt() {
//        return cargoSupervisorEnt;
//    }
//
//    public void setCargoSupervisorEnt(String cargoSupervisorEnt) {
//        this.cargoSupervisorEnt = cargoSupervisorEnt;
//    }
//
//    public String getTelefonoSupervisorEnt() {
//        return telefonoSupervisorEnt;
//    }
//
//    public void setTelefonoSupervisorEnt(String telefonoSupervisorEnt) {
//        this.telefonoSupervisorEnt = telefonoSupervisorEnt;
//    }
//
//    public String getCelularSupervisorEnt() {
//        return celularSupervisorEnt;
//    }
//
//    public void setCelularSupervisorEnt(String celularSupervisorEnt) {
//        this.celularSupervisorEnt = celularSupervisorEnt;
//    }
//
//    public String getFaxEntidad() {
//        return faxEntidad;
//    }
//
//    public void setFaxEntidad(String faxEntidad) {
//        this.faxEntidad = faxEntidad;
//    }
//
//    public String getNombreSupervisorUniv() {
//        return nombreSupervisorUniv;
//    }
//
//    public void setNombreSupervisorUniv(String nombreSupervisorUniv) {
//        this.nombreSupervisorUniv = nombreSupervisorUniv;
//    }
//
//    public String getCorreoSupevisorUniv() {
//        return correoSupevisorUniv;
//    }
//
//    public void setCorreoSupevisorUniv(String correoSupevisorUniv) {
//        this.correoSupevisorUniv = correoSupevisorUniv;
//    }
//
//    public String getTelefonoSupervisorUniv() {
//        return telefonoSupervisorUniv;
//    }
//
//    public void setTelefonoSupervisorUniv(String telefonoSupervisorUniv) {
//        this.telefonoSupervisorUniv = telefonoSupervisorUniv;
//    }
//
//    public String getCelularSupervisorUniv() {
//        return celularSupervisorUniv;
//    }
//
//    public void setCelularSupervisorUniv(String celularSupervisorUniv) {
//        this.celularSupervisorUniv = celularSupervisorUniv;
//    }
//
//    public String getNombrePracticante() {
//        return nombrePracticante;
//    }
//
//    public void setNombrePracticante(String nombrePracticante) {
//        this.nombrePracticante = nombrePracticante;
//    }
//
//    public String getCodigoPracticante() {
//        return codigoPracticante;
//    }
//
//    public void setCodigoPracticante(String codigoPracticante) {
//        this.codigoPracticante = codigoPracticante;
//    }
//
//    public String getTelefonoPracticante() {
//        return telefonoPracticante;
//    }
//
//    public void setTelefonoPracticante(String telefonoPracticante) {
//        this.telefonoPracticante = telefonoPracticante;
//    }
//
//    public String getCelularPracticante() {
//        return celularPracticante;
//    }
//
//    public void setCelularPracticante(String celularPracticante) {
//        this.celularPracticante = celularPracticante;
//    }
//
//    public String getCorreoPracticante() {
//        return correoPracticante;
//    }
//
//    public void setCorreoPracticante(String correoPracticante) {
//        this.correoPracticante = correoPracticante;
//    }
//
//    public Date getFechaVisitaInicial() {
//        return fechaVisitaInicial;
//    }
//
//    public void setFechaVisitaInicial(Date fechaVisitaInicial) {
//        this.fechaVisitaInicial = fechaVisitaInicial;
//    }
//
//    public String getAreaTrabajo() {
//        return areaTrabajo;
//    }
//
//    public void setAreaTrabajo(String areaTrabajo) {
//        this.areaTrabajo = areaTrabajo;
//    }
//
//    public String getAspectosTratadosVisIni() {
//        return aspectosTratadosVisIni;
//    }
//
//    public void setAspectosTratadosVisIni(String aspectosTratadosVisIni) {
//        this.aspectosTratadosVisIni = aspectosTratadosVisIni;
//    }
//
//    public String getAcuerdosRealizados() {
//        return acuerdosRealizados;
//    }
//
//    public void setAcuerdosRealizados(String acuerdosRealizados) {
//        this.acuerdosRealizados = acuerdosRealizados;
//    }
//
//    public String getProcesosEjecutados() {
//        return procesosEjecutados;
//    }
//
//    public void setProcesosEjecutados(String procesosEjecutados) {
//        this.procesosEjecutados = procesosEjecutados;
//    }
//
//    public String getAnalisisBreve() {
//        return analisisBreve;
//    }
//
//    public void setAnalisisBreve(String analisisBreve) {
//        this.analisisBreve = analisisBreve;
//    }
//
//    public String getValoracionFundamentacion() {
//        return valoracionFundamentacion;
//    }
//
//    public void setValoracionFundamentacion(String valoracionFundamentacion) {
//        this.valoracionFundamentacion = valoracionFundamentacion;
//    }
//
//    public Date getFechaVisitaFinal() {
//        return fechaVisitaFinal;
//    }
//
//    public void setFechaVisitaFinal(Date fechaVisitaFinal) {
//        this.fechaVisitaFinal = fechaVisitaFinal;
//    }
//
//    public String getAspectosTratadosVisFin() {
//        return aspectosTratadosVisFin;
//    }
//
//    public void setAspectosTratadosVisFin(String aspectosTratadosVisFin) {
//        this.aspectosTratadosVisFin = aspectosTratadosVisFin;
//    }
//
//    public String getAnalisisActivProg() {
//        return analisisActivProg;
//    }
//
//    public void setAnalisisActivProg(String analisisActivProg) {
//        this.analisisActivProg = analisisActivProg;
//    }
//
//    public String getAspectosMejorarHab() {
//        return aspectosMejorarHab;
//    }
//
//    public void setAspectosMejorarHab(String aspectosMejorarHab) {
//        this.aspectosMejorarHab = aspectosMejorarHab;
//    }
//
//    public String getHorarioPracticaDe() {
//        return horarioPracticaDe;
//    }
//
//    public void setHorarioPracticaDe(String horarioPracticaDe) {
//        this.horarioPracticaDe = horarioPracticaDe;
//    }
//
//    public String getHorarioPracticaHasta() {
//        return horarioPracticaHasta;
//    }
//
//    public void setHorarioPracticaHasta(String horarioPracticaHasta) {
//        this.horarioPracticaHasta = horarioPracticaHasta;
//    }
//
//    public int getSemanasTrabajadas() {
//        return semanasTrabajadas;
//    }
//
//    public void setSemanasTrabajadas(int semanasTrabajadas) {
//        this.semanasTrabajadas = semanasTrabajadas;
//    }
//
//    public int getHorasRealesSemanales() {
//        return horasRealesSemanales;
//    }
//
//    public void setHorasRealesSemanales(int horasRealesSemanales) {
//        this.horasRealesSemanales = horasRealesSemanales;
//    }
//
//    public int getSemanasDiasNoTrabajados() {
//        return semanasDiasNoTrabajados;
//    }
//
//    public void setSemanasDiasNoTrabajados(int semanasDiasNoTrabajados) {
//        this.semanasDiasNoTrabajados = semanasDiasNoTrabajados;
//    }
//
//    public Boolean getJustificados() {
//        return justificados;
//    }
//
//    public void setJustificados(Boolean justificados) {
//        this.justificados = justificados;
//    }
//
//    //estos metodos getter y setter son el resPracProf
//    // Se usan para cargar los campos desde el formulario y cargarlos como un todo
//    // ver mas arriba linea 93
//    public ResumenSemPracProf getResPracProf() {
//        return resPracProf;
//    }
//
//    public void setResPracProf(ResumenSemPracProf resPracProf) {
//        this.resPracProf = resPracProf;
//    }
    
    
    public ResumenSemPracProf getResumenSemPracProf() {
        return resumenSemPracProf;
    }

    public void setResumenSemPracProf(ResumenSemPracProf resumenSemPracProf) {
        this.resumenSemPracProf = resumenSemPracProf;
    }
    
    
    public List<Estudiante> getListaEstudiantes() {
        return listaEstudiantes;
    }

    public void setListaEstudiantes(List<Estudiante> listaEstudiantes) {
        this.listaEstudiantes = listaEstudiantes;
    }
    
    public String getEstudianteSelected() {
        return estudianteSelected;
    }

    public void setEstudianteSelected(String estudianteSelected) {
        this.estudianteSelected = estudianteSelected;
    }

//    public List<Estudiante> getListaEstuiantes() {
//        return listaEstuiantes;
//    }
//
//    public void setListaEstuiantes(List<Estudiante> listaEstuiantes) {
//        this.listaEstuiantes = listaEstuiantes;
//    }
//
    public Entidad getEntidad() {
        return entidad;
    }

    public void setEntidad(Entidad entidad) {
        this.entidad = entidad;
    }
//
//    public SupervisorEntidad getSupervisorEntidad() {
//        return supervisorEntidad;
//    }
//
//    public void setSupervisorEntidad(SupervisorEntidad supervisorEntidad) {
//        this.supervisorEntidad = supervisorEntidad;
//    }
//
//    public Supervisor getSupervisor() {
//        return supervisor;
//    }
//
//    public void setSupervisor(Supervisor supervisor) {
//        this.supervisor = supervisor;
//    }
//
//    public Estudiante getEstudiante() {
//        return estudiante;
//    }
//
//    public void setEstudiante(Estudiante estudiante) {
//        this.estudiante = estudiante;
//    }

//    public ResumenSemPracProf getResumen() {
//        indexPanel = "0";
//        return resumen;
//    }

//    public void setResumen(ResumenSemPracProf resumen) {
//        this.resumen = resumen;
//    }
    
    
    
    public SessionBean getSessionBean() {
        return sessionBean;
    }

    public void setSessionBean(SessionBean sessionBean) {
        this.sessionBean = sessionBean;
    }

//    public Date getHoraInicio() {
//        return horaInicio;
//    }
//
//    public void setHoraInicio(Date horaInicio) {
//        this.horaInicio = horaInicio;
//    }
//
//    public Date getHoraFin() {
//        return horaFin;
//    }
//
//    public void setHoraFin(Date horaFin) {
//        this.horaFin = horaFin;
//    }
//
//    public List<ResumenSemPracProf> getResumenSemPracProfs() {
//        return resumenSemPracProfs;
//    }
//
//    public void setResumenSemPracProfs(List<ResumenSemPracProf> resumenSemPracProfs) {
//        this.resumenSemPracProfs = resumenSemPracProfs;
//    }
//
//    public String getIndexPanel() {
//        return indexPanel;
//    }
//
//    public void setIndexPanel(String indexPanel) {
//        this.indexPanel = indexPanel;
//    }

//    private void inicializarControladores() {
//        FacesContext context = FacesContext.getCurrentInstance();
//        pruebaJpaController = (PruebaJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "pruebaJpaController");
//        estudianteJpaController = (EstudianteJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "estudianteJpaController");
//        supervisorJpaController = (SupervisorJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "supervisorJpaController");
//        entidadJpaController = (EntidadJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "entidadJpaController");
//        supervisorEntidadJpaController = (SupervisorEntidadJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "supervisorEntidadJpaController");
//        convenioJpaController = (ConvenioJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "convenioJpaController");
//    }


    public List<ConvenioXPeriodoXEstudiante> getConvenioXPeriodoXEstudiantes() {
        return convenioXPeriodoXEstudiantes;
    }

    public void setConvenioXPeriodoXEstudiantes(List<ConvenioXPeriodoXEstudiante> convenioXPeriodoXEstudiantes) {
        this.convenioXPeriodoXEstudiantes = convenioXPeriodoXEstudiantes;
    }

    public Periodo getPeriodo() {
        return periodo;
    }

    public void setPeriodo(Periodo periodo) {
        this.periodo = periodo;
    }

    public Sitio getSitio() {
        return sitio;
    }

    public void setSitio(Sitio sitio) {
        this.sitio = sitio;
    }
    
    
}
